///******************************************************************************* // * Copyright (c) 2005, 2006 IBM Corporation and others. // * All rights reserved. This program and the accompanying materials // * are made available under the terms of the Eclipse Public License v1.0 // * which accompanies this distribution, and is available at // * http://www.eclipse.org/legal/epl-v10.html // * // * Contributors: // * IBM Corporation - initial API and implementation // *******************************************************************************/ //package org.eclipse.ui.tests.datatransfer; // //import java.io.ByteArrayInputStream; //import java.io.File; //import java.util.ArrayList; //import java.util.List; // //import org.eclipse.core.resources.IFile; //import org.eclipse.core.resources.IFolder; //import org.eclipse.core.resources.IProject; //import org.eclipse.core.resources.IResource; //import org.eclipse.core.runtime.CoreException; //import org.eclipse.core.runtime.IStatus; //import org.eclipse.core.runtime.NullProgressMonitor; //import org.eclipse.core.tests.harness.FileSystemHelper; //import org.eclipse.ui.dialogs.IOverwriteQuery; //import org.eclipse.ui.internal.wizards.datatransfer.FileSystemExportOperation; //import org.eclipse.ui.tests.harness.util.FileUtil; //import org.eclipse.ui.tests.harness.util.UITestCase; // //public class ExportFileSystemOperationTest extends UITestCase implements // IOverwriteQuery { // // private static final String[] directoryNames = { "dir1", "dir2" }; // // private static final String[] fileNames = { "file1.txt", "file2.txt" }; // // private String localDirectory; // // private IProject project; // // public ExportFileSystemOperationTest(String testName) { // super(testName); // } // // public String queryOverwrite(String pathString) { // return ""; // } // // protected void doSetUp() throws Exception { // super.doSetUp(); // project = FileUtil.createProject("Export" + getName()); // File destination = // new File(FileSystemHelper.getRandomLocation(FileSystemHelper.getTempDir()) // .toOSString()); // localDirectory = destination.getAbsolutePath(); // if (!destination.mkdirs()) // fail("Could not set up destination directory for " + getName()); // setUpData(); // } // // private void setUpData(){ // try{ // for(int i = 0; i < directoryNames.length; i++){ // IFolder folder = project.getFolder(directoryNames[i]); // folder.create(false, true, new NullProgressMonitor()); // for (int k = 0; k < fileNames.length; k++){ // IFile file = folder.getFile(fileNames[k]); // String contents = // directoryNames[i] + ", " + fileNames[k]; // file.create(new ByteArrayInputStream(contents.getBytes()), // true, new NullProgressMonitor()); // } // } // } // catch(Exception e){ // fail(e.toString()); // } // } // // protected void doTearDown() throws Exception { // super.doTearDown(); // // delete exported data // File root = new File(localDirectory); // if (root.exists()){ // FileSystemHelper.clear(root); // } // try { // project.delete(true, true, null); // } catch (CoreException e) { // fail(e.toString()); // } // finally{ // project = null; // localDirectory = null; // } // } // // public void testGetStatus() throws Exception { // List resources = new ArrayList(); // resources.add(project); // FileSystemExportOperation operation = // new FileSystemExportOperation( // null, resources, localDirectory, this); // // assertTrue(operation.getStatus().getCode() == IStatus.OK); // } // // /* Export a project, with all directories */ // public void testExportRootResource() throws Exception { // List resources = new ArrayList(); // resources.add(project); // FileSystemExportOperation operation = // new FileSystemExportOperation( // null, resources, localDirectory, this); // openTestWindow().run(true, true, operation); // // verifyFolders(directoryNames.length); // } // // /* Export a project, create all leadup folders. */ // public void testExportResources() throws Exception { // List resources = new ArrayList(); // IResource[] members = project.members(); // for (int i = 0; i < members.length; i++){ // resources.add(members[i]); // } // FileSystemExportOperation operation = // new FileSystemExportOperation( // null, resources, localDirectory, this); // openTestWindow().run(true, true, operation); // // verifyFolders(directoryNames.length); // } // // /* Export folders, do not create leadup folders. */ // public void testExportFolderCreateDirectoryStructure() throws Exception { // List resources = new ArrayList(); // IResource[] members = project.members(); // for (int i = 0; i < members.length; i++){ // if (isDirectory(members[i])) // resources.add(members[i]); // } // FileSystemExportOperation operation = // new FileSystemExportOperation( // null, resources, localDirectory, this); // // operation.setCreateContainerDirectories(true); // operation.setCreateLeadupStructure(false); // openTestWindow().run(true, true, operation); // // verifyFolders(directoryNames.length, false); // } // // /* Export files, do not create leadup folders. */ // public void testExportFilesCreateDirectoryStructure() throws Exception { // List resources = new ArrayList(); // IResource[] members = project.members(); // for (int i = 0; i < members.length; i++){ // if (isDirectory(members[i])){ // IResource[] folderMembers = ((IFolder)members[i]).members(); // for (int k = 0; k < folderMembers.length; k++){ // if (isFile(folderMembers[k])){ // resources.add(folderMembers[k]); // } // } // } // } // FileSystemExportOperation operation = // new FileSystemExportOperation( // null, resources, localDirectory, this); // // operation.setCreateContainerDirectories(true); // operation.setCreateLeadupStructure(false); // openTestWindow().run(true, true, operation); // // verifyFiles(resources); // } // // /* Export files, overwrite - do not create container directories or lead up folders. */ // public void testExportOverwrite() throws Exception { // List resources = new ArrayList(); // resources.add(project); // FileSystemExportOperation operation = // new FileSystemExportOperation( // null, resources, localDirectory, this); // openTestWindow().run(true, true, operation); // operation.setOverwriteFiles(true); // operation.setCreateContainerDirectories(false); // operation.setCreateLeadupStructure(false); // openTestWindow().run(true, true, operation); // // verifyFolders(directoryNames.length); // } // // private boolean isFile(IResource resource){ // for (int i = 0; i < fileNames.length; i++){ // if (fileNames[i].equals(resource.getName())) // return true; // } // return false; // } // // private void verifyFiles(List resources){ // for (int i = 0; i < resources.size(); i++){ // IResource resource = (IResource)resources.get(i); // assertTrue( // "Export should have exported " + resource.getName(), // isFile(resource)); // // } // } // // private void verifyFolders(int folderCount){ // verifyFolders(folderCount, true); // } // // private void verifyFolders(int folderCount, boolean includeRootFolder){ // File root; // if (includeRootFolder){ // root = new File(localDirectory, project.getName()); // assertTrue("Export failed: " + project.getName() + " folder does not exist", root.exists()); // } // else{ // root = new File(localDirectory); // } // File[] files = root.listFiles(); // List directories = new ArrayList(); // if (files != null){ // for (int i = 0; i < files.length; i++){ // if (files[i].isDirectory()) // directories.add(files[i]); // } // } // assertEquals("Export failed to Export all directories", // folderCount, directories.size()); // // for (int i = 0; i < directories.size(); i++) { // File directory = (File)directories.get(i); // assertTrue("Export failed to export directory " + directory.getName(), directory.exists()); // verifyFolder(directory); // } // } // // private void verifyFolder(File directory){ // File[] files = directory.listFiles(); // if (files != null){ // for (int k = 0; k < files.length; k++){ // File file = files[k]; // assertTrue("Export failed to export file: " + file.getName(), file.exists()); // } // } // } // // private boolean isDirectory(IResource resource){ // for (int i = 0; i < directoryNames.length; i++){ // if (directoryNames[i].equals(resource.getName())) // return true; // } // return false; // } //}